import { Toast } from "vant";
const isDev = process.env.NODE_ENV === 'development'
export function vrvInit() {
  // jssdk 文件放到了后台，导致在 jssdk 无法使用的情况下，调用jssdk方法会报错后续代码无法执行，需要抛异常使得报错后依然往下执行
  try {
    /* global vrv */
    vrv.init({
      debug: false,
    });

    vrv.ready(function () {
      // init信息验证后会执行ready方法，所有接口调用都必须在init接口获得结果之后，init是一个客户端的异步操作，
      //所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。
      //对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。

      // 隐藏豆豆的头部导航和底部菜单栏
      showNavigationBar(false);
      // showTabBar(false);
    });
  } catch (e) {
    console.log(e);
  }
}

/*
  显示/隐藏导航栏
*/
export function showNavigationBar(show) {
  vrv.jssdk.showNavigationBar({ show: show });
}

/*
  显示/隐藏底部菜单栏
*/
export function showTabBar(show) {
  vrv.jssdk.showTabBar({ show: show });
}

/* 注销登录 */
export function vrvLogout() {
  vrv.jssdk.logout({
    success: function (res) {
      let resultCode = res.resultCode
      console.log('vrvLogout2', resultCode);
    }
  })
}

/* 打开聊天界面 */
export function openChat(linkdoodID) {
  vrv.jssdk.openChat({
    chatId: linkdoodID,
    success: function success(res) { },
  });
}

/*  打电话 */
export function callPhone(phone) {
  vrv.jssdk.callPhone({
    phoneNum: phone,
    success: function success(res) { },
  });
}

/*  打开文件 */
export function openFileURL(url, name) {
  vrv.jssdk.openFileURL({
    url: url, // 图片或文件url
    name: name, //需要界面上显示的文件名
    success(data) {
      if (data.resultCode == -1) {
        Toast("打开文件失败");
      }
      // "resultCode":  0 为成功 -1 失败
    },
  });
}

// 选择本地图片
export function getLocalPhotos(size = 1) {
  return new Promise((resolve, reject) => {
    if (isDev) {
      let r = {
        // r的数据类型   模拟数据
        mFileName: ["测试1.png"],
        mPhotoPath: [
          "https://fastly.jsdelivr.net/npm/@vant/assets/apple-3.jpeg",
        ],
        resultCode: 0, // 0 成功  -1 失败   -2 取消
      }
      setTimeout(() => {
        resolve(r);
      }, 1000);
      return;
    }
    vrv.jssdk.getLocalPhotos({
      size: size,
      upload: true,
      compress: true,
      compressPercent: 50,
      success: function (res) {
        if (res.resultCode == -1) {
          Toast.fail("选择失败");
          // 失败
          reject(res);
        } else {
          resolve(res);
        }
        // let resultCode = res.resultCode
        // let mPhotoPath = res.mPhotoPath
        // let mFileName = res.mFileName
      }
    })
  });
}

/* 上传文件 */
export function uploadFile(size = 10, fileSize = 50) {
  return new Promise((resolve, reject) => {
    Toast.loading({ message: "", forbidClick: true, duration: 60000 });
    vrv.jssdk.getLocalFiles({
      size: size, // 最多选择文件的个数，最大值 10，可为空，默认 10
      type: 10020,
      // secretCheck: true, // 是否涉密检查 默认否 （PC暂不支持）如果后盖文件涉密检查未开启，此功能可能会失效
      fileExt: FILE_TYPE, // 文件后缀限制（PC暂不支持）如果后盖文件涉密检查未开启，此功能可能会失效
      fileSize: fileSize * 1024, // 文件大小限制（PC暂不支持）如果后盖文件涉密检查未开启，此功能可能会失效，单位kb，默认为 51200kb，即50M
      success: function (res) {
        // console.log('FILE_TYPE', FILE_TYPE)
        /* resultCode:
        -0 成功
        -1失败
        -2用户取消
        -3涉密检测不通过
        -4 文件后缀限制未通过
        -5 文件大小限制未通过 */
        if (res.resultCode == 0) {
          Toast.success();
          // 上传成功
          let files = [];
          res.mFilePath.forEach((path, index) => {
            let name = res.mFileName[index];
            files.push({ name: name, url: path });
            resolve(files);
          });
          resolve(res);
        } else if (res.resultCode == -2) {
          Toast.clear();
          // 用户取消
          reject(res);
        } else if (res.resultCode == -3) {
          Toast.fail("涉密检测不通过！");
          reject(res);
        } else if (res.resultCode == -4) {
          Toast.fail("文件类型不允许上传");
          reject(res);
        } else if (res.resultCode == -5) {
          Toast.fail("文件大小不允许上传!");
          reject(res);
        } else {
          Toast.fail("上传失败！ resultCode：" + res.resultCode);
          reject(res);
        }
      },
    });
  });
}

export function takePhoto() {
  return new Promise((resolve, reject) => {
    vrv.jssdk.takePhoto({
      upload: true, //是否上传 默认 true
      compress: false, //是否压缩 默认为 false
      // compressPercent: 50,
      success: function (res) {
        if (res.resultCode == -1) {
          Toast.fail("拍照失败");
          // 失败
          reject(res);
        } else {
          resolve(res);
        }
      },
    });
  });
}
export function getPosition() {
  return new Promise((resolve, reject) => {
    if (isDev) {
      let res = {
        mLocation_X: 0,
        mLocation_Y: 0,
        mAddress: "湖北省武汉市江夏区金融港三路73号靠近同济堂(金融港路)",
      };
      setTimeout(() => {
        resolve(res);
      }, 500);
      return;
    }
    vrv.jssdk.getPosition({
      success: function (res) {
        if (res.resultCode == -1) {
          Toast.fail("获取位置失败");
          // 失败
          reject(res);
        } else {
          resolve(res);
        }
        // alert(JSON.stringify(res));//拍照取证获取位置
      },
    });
  });
}

// 获取用户好友
export function getFriendList() {
  return new Promise((resolve, reject) => {
    vrv.jssdk.getContactList({
      success: function (res) {
        let contacts = res.contacts;
        resolve(contacts);
      },
    });
  });
}
//type 1、开始 2、 停止 3 、 取消   默认 1
export function voiceToTxt(call, type) {
  vrv.jssdk.speech2Text({
    type: type, // 1、开始 2、 停止 3 、 取消   默认 1
    success: function (i) {
      call(i.resultContent);
    },
  });
}

export function closeWindow() {
  vrv.jssdk.closeView({});
}
